package com.cskaoyan.javase.oop3._5lambda._1exercise;

/**
 * Lambda表达式语法练习
 * () -> {}
 *
 * @since 17:16
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        INoReturnTwoParam ip1 = (int a, int b) -> {
            System.out.println(a + b);
        };
        ip1.test(100, 200);

        IHasReturnTwoParam ip2 = (int a,int b) -> {
            return a - b;
        };
        System.out.println(ip2.test(100, 100));
    }
}

//无返回值无参数的功能接口
@FunctionalInterface
interface INoReturnNoParam {
    void test();
}

//无返回值有一个参数的功能接口
@FunctionalInterface
interface INoReturnOneParam {
    void test(int a);
}

//无返回值两个参数的功能接口
@FunctionalInterface
interface INoReturnTwoParam {
    void test(int a, int b);
}

//有返回值无参数的功能接口
@FunctionalInterface
interface IHasReturnNoParam {
    int test();
}

//有返回值一个参数的功能接口
@FunctionalInterface
interface IHasReturnOneParam {
    int method(int a);
}

//有返回值两个参数的功能接口
@FunctionalInterface
interface IHasReturnTwoParam {
    int test(int a, int b);
}